Method and apparatuses for using packet data to manage a data stream in a broadband communications system

ABSTRACT

A method ( 400 ) for managing a data stream ( 30 ) encoded according to a digital transmission protocol and configured for broadcasting to a consumer network device ( 14 ) within a broadband communications network ( 10 ). A message relating to the data stream is encapsulated ( 402 ) within a transport layer data packet ( 502 ). The packet has a destination port number field. A value associated with a predetermined parameter of the digital transmission protocol is created ( 404 ) within the field. Based on the value, the packet is forwarded ( 406 ) to the consumer network device according to a network layer protocol. When the forwarded message is received by the consumer network device, the consumer network device processes the data stream based on the message, and establishes an application layer communication socket based on the destination port number value. The socket is usable to receive further messages associated with the predetermined parameter of the digital transmission protocol.

STATEMENT OF RELATED APPLICATIONS

This application claims the benefit of priority of U.S. ProvisionalPatent Application Ser. No. 60/520,623, filed Nov. 17, 2003, which isincorporated by reference in its entirety herein.

BACKGROUND

Program providers such as multiple system operators (“MSOs”) deliverdigital content and provide services to consumers over networks such ascable networks. Cable networks typically include headend reception andtransmission equipment configured to distribute digital content/servicesto consumer network devices, such as set-top boxes, via encoded programstreams carried over in-band channels.

In traditional cable networks, program streams are encoded using acombination of standard and proprietary protocols, and networkinterfaces are largely based on proprietary protocols. Moving PictureExperts Group (“MPEG”) protocols are generally used to encode contentinto data streams. Each data stream has an associated program identifier(“PID”) associated therewith, and multiple data streams are multiplexedinto a single transport stream.

Information regarding the organization of the PIDs comprising thetransport stream, is conventionally communicated to consumer networkdevices via service information messages transmitted on out-of-band(“OOB”) channels. PID organization information is defined by well-knownrelational addressing tables (that are also associated with PIDs withinthe transport stream) such as the Program Association Table (“PAT”) andProgram Map Tables (“PMTs”). Other network-defined messages (oftenproprietary) are often delivered conventionally to consumer networkdevices on OOB channels. These message include service informationmessages that allow consumer network devices to efficiently decodeMPEG's well-known relational addressing tables (for example, certainmessages/tables defined by Motorola's DigiCipherII protocol),conditional access messages, electronic program guide messages,emergency alert system messages, and other generic messages. Manyconsumer network devices use hardware to filter messages received overOOB channels—for example, many set-top boxes manufactured by Motorolause hardware to filter messages relating to specific MPEG PIDs.

MSOs wish to create flexible network architectures—evidenced by theefforts of OpenCable™, a group of North American cable operators seekingto create a common platform for advanced interactive cable services—andprefer to rely on data communication technologies such as the Ethernetand Internet Protocol (“IP”), rather than an arrangement of proprietarynetwork interfaces and protocols. The OpenCable™ effort has two keycomponents: hardware specifications and software specifications. Thehardware specifications define host devices (for example, set-top boxes)that include CableCARD™ modules/interfaces.

The software specifications, among other things, seek to standardizecable network interfaces. One such cable network interface is theinterface for transporting messages over OOB channels between cablenetwork headends and consumer network devices such as set-top boxes. The“DOCSIS® Set-top Gateway (DSG) Interface Specification,” issued byCableLabs® on Aug. 4, 2004 (the “DSG Specification”), defines aninterface for transport of OOB messages over Internet Protocol between aset-top network controller and a set-top box. The DSG Specification ishereby incorporated by reference in its entirety for all purposes, as ifset forth in full herein.

In converged IP and Ethernet systems, however, MPEG PIDs are not unique,making infrastructure, such as hardware used by consumer network devicesto filter OOB messages relating to specific MPEG PIDs, of little use.And although certain advanced set-top boxes may be able to receive OOBmessages in the manner set forth in the DSG Specification, without theability to filter the IP OOB messages using existing hardware, they maybe overwhelmed by the task of processing the large number of IP OOBmessages required to manage the encoded data streams received overin-band channels.

There are therefore needs for methods and apparatuses for managingencoded data streams configured for broadcasting to consumer networkdevices within broadband communication systems, which methods andapparatuses use packet-based network protocol messaging for out-of-bandcommunication with the consumer network devices, and which also allowthe consumer network devices to receive relevant messages based onpredetermined parameters of the encoding protocol.

SUMMARY

According to an aspect of the present invention, a method for managing adata stream encoded according to a digital transmission protocol andconfigured for broadcasting to a consumer network device within abroadband communications network includes: encapsulating a messagerelating to the data stream within a transport layer data packet, thetransport layer data packet having a destination port number fieldassociated therewith; creating a destination port number value withinthe destination port number field, the destination port number valueassociated with a predetermined parameter of the digital transmissionprotocol; and based on the destination port number value, forwarding thetransport layer data packet to the consumer network device according toa network layer protocol. When the forwarded message is received by theconsumer network device, the consumer network device is caused toprocess the data stream based on the message, and caused to establish anapplication layer communication socket based on the destination portnumber value. The application layer communication socket usable toreceive further messages associated with the predetermined parameter ofthe digital transmission protocol.

The transport layer data packet, which may be a user data protocol(“UDP”) packet, may be forwarded according to a protocol set forth in adocument entitled “DOCSIS® Set-top Gateway (DSG) InterfaceSpecification,” issued by CableLabs® on Aug. 4, 2004. The network layerprotocol may be an Internet Protocol “IP” protocol. The digitaltransmission protocol may be a Moving Pictures Experts Group (“MPEG”)protocol.

The message, which may be an out-of-band message, includes information(such as a Program Association Table, a Program Map Table, a conditionalaccess table, and an entitlement management message) used for accessinginformation within the data stream. The destination port number value(which may be in a predetermined private port range determined by a 3-or 4-bit prefix of the destination port number value) is a logicalreference to the predetermined parameter (for example, an MPEG programidentifier (“PID”) value, a private unicast addressing protocol, or aprivate multicast addressing protocol), identifying the content of themessage.

In accordance with another aspect of the present invention, acomputer-readable medium is encoded with a computer program which, whenloaded into a processor, implements the foregoing method.

In accordance with a further aspect of the present invention, a methodfor managing a data stream encoded according to a digital transmissionprotocol and configured for broadcasting to a consumer network devicewithin a broadband communications network includes: receiving a messageencapsulated within a transport layer data packet, the transport layerdata packet having a destination port number field associated therewith,the destination port number field having a value therein associated witha predetermined parameter of the digital transmission protocol; based onthe destination port number value, establishing an application layercommunication socket, the application layer communication socket usableto receive further messages associated with the predetermined parameterof the digital transmission protocol; and based on the message,processing the data stream. The method may further include usinghardware or software filters associated with the consumer network deviceto discriminate the destination port number field.

In accordance with a still further aspect of the present invention, acomputer-readable medium is encoded with a computer program which, whenloaded into a processor, implements the foregoing method.

In accordance with yet another aspect of the present invention, anapparatus for managing a data stream encoded according to a digitaltransmission protocol and configured for broadcasting to a consumernetwork device within a broadband communications network includes: aninterface operative to process a plurality of transport layer datapackets; a computer-readable storage medium; and a processor responsiveto the computer-readable storage medium and to a computer program. Whenthe computer program is loaded into the processor, it is operative to:arrange for receipt of a message encapsulated within a transport layerdata packet, the transport layer data packet having a destination portnumber field associated therewith, the destination port number fieldhaving a value therein associated with a predetermined parameter of thedigital transmission protocol; and based on the destination port numbervalue, arrange for establishment of an application layer communicationsocket, the application layer communication socket usable to receivefurther messages associated with the predetermined parameter of thedigital transmission protocol, the data stream arranged for processingbased on the message.

The processor may be associated with a server, or with the consumernetwork device (which may be, for example, a set-top box).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a broadband communication system, in whichvarious aspects of the present invention may be used.

FIG. 2 is a block diagram of a generic network device having componentsthat are included in the network devices shown in FIG. 1.

FIG. 3 is a block diagram of the consumer network device shown in FIG.1, in which various aspects of the present invention may be used.

FIG. 4 is a flowchart of a method for managing a data stream encodedaccording to a digital transmission protocol, in accordance with certainaspects of the present invention.

FIG. 5 is a block diagram of an encapsulation scheme for a messagetransmitted between network devices in the system shown in FIG. 1, inaccordance with certain aspects of the present invention.

FIG. 6 is a flowchart of a method for managing a data stream encodedaccording to a digital transmission protocol, in accordance with furtheraspects of the present invention.

DETAILED DESCRIPTION

Turning now to the drawings, wherein like numerals designate likecomponents, FIG. 1 is a block diagram of a broadband communicationsystem 10, in which various aspects of the present invention may beused. System 10 includes a number of network devices—a server 13, acable modem termination system (“CMTS”) 26, and a consumer networkdevice 14. Server 13 and CMTS 26 are in communication via regional IPnetwork/IP backbone 24 within a headend 22, and a consumer networkdevice 14 having a cable modem 15 is responsive to headend 22 via ahybrid fiber-optic/coaxial cable (“HFC”) network 25.

In general operation of system 10, headend 22 facilitates distributionof content 12 to computer network device 14 over HFC network 25. Content12 includes any pre-recorded or live electronic signals, either analogor digital, representing an image and/or audio, software, or other data,in any format, and services including interactive television, Internetservices, telephone services, video-on-demand services, and the like.

System 10 is preferably a cable system operated by a multiple systemoperator (“MSO”) that implements aspects of the “DOCSIS® Set-top Gateway(DSG) Interface Specification,” published by CableLabs® on Aug. 4, 2004(the “DSG Specification,” which is hereby incorporated by reference inits entirety for all purposes, as if set forth in full herein); andconsumer network device 14 is a cable receiver (such as Motorola's DCT,CableCard and DVB Conditional access devices) that contain an embeddedcable modem 15 for Data Over Cable Service Interface Specification(“DOCSIS®”) connectivity and an embedded set-top box. DSG Serverfunction 60 (discussed further below), DSG Agent function 70 (discussedfurther below), and DSG Client function 80 (also discussed furtherbelow) implement interface requirements (the “DSG Protocols”, which areset forth in the DSG Specification) and/or functions referred to in theDSG Specification as the DSG Server, the DSG Agent, and the DSG Client,respectively, in their respective network devices 13, 26, and 14.

It will be understood, however, that system 10, and connectionsthroughout, may be any public or private, wired or wireless, contenttransmission infrastructure or technology for delivery of content 12,including but not limited to a fiber-optic network, a coaxial cablenetwork, a satellite network, a cellular network, a wireless network,the Internet, a television network, a radio network, a copper wirenetwork, or any other existing or future transmission infrastructure ortechnology, or any combination thereof, operated by any type of programprovider, such as a television network or station, a studio, an Internetbroadcaster or service provider, a cable operator, or a satelliteoperator; and consumer network device 14 may be any device orcombination of devices responsive to system 10, capable of receiving andrendering content 12 in accordance with aspects of the presentinvention, including but not limited to an OpenCable™ host device orcomponent thereof (such as a CableCARD™ module), home- or office-basedpersonal computer systems, gateways, receiving, recording or playbackdevices, stereo systems, personal computer/television devices, and othertypes of wired or wireless devices, such as personal digital assistants,radiofrequency communication devices, and any other type of networkappliance, either standing alone or included in other devices.

In general, headend 22 facilitates delivery of content 12 to consumernetwork device 14 over HFC network 25—content 12 is transmitted as oneor more data stream(s) 30 over in-band channel(s) 16. Data stream(s) 30are encoded according to a digital transmission protocol such as aMoving Picture Experts Group (“MPEG”) protocol (for example, MPEG2),and/or other protocols such as Motorola's DigiCipher II protocol.

More specifically, headend 22 manages consumer network device 14'saccess to content 12 via out-of-band (“OOB”) Messages 50 (which mayinclude, for example, conditional access messages, electronic programguide messages, emergency alert system messages, and service informationmessages) that are created by server 13 and received by consumer networkdevice 14 as one or more packet streams 18 (“DSG Tunnels”) over adedicated OOB channel 17 in accordance with the DSG Protocols formulticasting OOB Messages 50. OOB channel 17 is a downstream channelthat conforms to OOB channel specifications set forth in various DOCSIS®documents cited as normative references in the DSG Specification.

Headend 22 may also include additional reception and transmissionequipment (not shown) that operates to perform the functions of headend22.

Regional IP Network/IP Backbone 24, which includes components such asmedia gateways, signaling gateways, routers, switches and firewalls, maybe included in, or separate from, headend 22.

FIG. 2 is a block diagram of a generic network device 200 that hasfunctional components generally included in, or accessible by, server 13(discussed further below), CMTS 26 (discussed further below), andset-top box 14/cable modem 15 (also discussed further below). Aprocessor 202 is responsive to computer-readable storage medium 204 andto computer programs 206. Computer-readable storage medium 204 may beany local or remote device, now known or later developed, capable ofrecording or storing data, and in particular may be, or may include, aread only memory (“ROM”), flash memory, random access memory, a harddisk drive, all types of compact disks and digital videodisks, and/ormagnetic tape.

Computer programs 206 are generally software components implementedaccording to well-known software engineering practices forcomponent-based software development and stored in computer-readablememories, such as storage medium 204. Computer programs 206, however,may be any signal processing methods and/or stored instructions, in oneor more parts, that electronically control functions set forth herein.

Network Interface function 208 represents aspects of the functionalarrangement of various computer programs 206 that pertain to the receiptand processing of OOB Messages 50 (shown in FIG. 1) as the OOB Messagestraverse a downstream path of network devices (for example, server 13,CMTS 26 and consumer network device 14), passing through, at eachnetwork interface, the seven vertical layers of the well-known abstractmodel that defines internetworking: layer 1, the Physical Layer; layer2, the Data Link Layer; layer 3, the Network Layer; layer 4, theTransport Layer; layer 5, the Session Layer; layer 6, the Presentationlayer; and layer 7, the Application Layer. As such, Network Interfacefunction 208 may include data interfaces, operations support interfaces,radio frequency interfaces, and the like (implemented, for example, byrouters, switches, modems or other network connection support devices ateach network device 13, 26 and 14), configured to handle communicationsprotocols/programs such as Ethernet; 802.11 (WiFi), Token Ring, InternetProtocol (various versions), address resolution protocol, and userdatagram protocol (“UDP”), among others, and to facilitate communicationbetween Application Layer functions such as DSG Server function 60(shown in FIG. 1 and discussed further below), DSG Agent function 70(also shown in FIG. 1 and discussed further below), and DSG Clientfunction 80 (shown in FIGS. 1 and 3 and discussed further below), andApplication Layer protocols, such as HTTP, SMTP, FTP, SSH, IRC, andSNMP, among others.

Referring again to FIG. 1, server 13 represents one or more co-locatedor remote computer systems that include and/or access the components ofgeneric network device 200 (shown in FIG. 2), including NetworkInterface function 208. Server 13 may be implemented, for example, by adigital addressable controller (for example, Motorola's DAC 6000) and/ora remote addressable download server (such as Motorola's RADD 6000 orCarousel Server 1000).

DSG Server function 60 represents aspects of the functional arrangementof various computer programs 206 (shown in FIG. 2; DSG Server function60 is preferably implemented by one or more Application Layer computerprograms 206) that pertain to the creation and forwarding of OOBMessages 50 by server 13. DSG Server function 60 creates, at theTransport Layer, user datagram protocol (“UDP”) datagrams containingcertain OOB Messages 50 that are used by Application Layer programs inconsumer network device 14, such as DSG Client function 80 (discussedfurther below).

CMTS 26 manages communications with cable modem 15 within consumernetwork device 14, providing, among other things, a downstream transportfor OOB Messages 50 over OOB Channel 17. In accordance with the DSGSpecification, CMTS 26 encapsulates IP datagrams received frompacket-switched Regional IP Network/IP Backbone 24 into DOCSIS physicaldata units (“PDUs”), using a destination address that is uniquelyassociated with DSG Tunnel 18, and forwards them to cable modem 15.

CMTS 26 includes and/or accesses the components of generic networkdevice 200 (shown in FIG. 2), including Network Interface function 208.CMTS may be implemented, for example, by Motorola's BSR-64000 (BroadbandServices Router.

DSG Agent function 70 represents aspects of the functional arrangementof various computer programs 206 (shown in FIG. 2; DSG Agent function 70is preferably implemented by one or more Application Layer computerprograms 206) that pertain to the forwarding of OOB Messages 50 by CMTS26 to consumer network device 14. DSG Agent function 70 includes animplementation of the DSG Protocol/functionality referred to in the DSGSpecification as the DSG Agent, which (1) creates DSG Tunnel 18, (2)places a stream of OOB Messages 50 from server 13 into DSG Tunnel 18,and (3) sends DSG Tunnel 18 to DSG Client 80 (discussed further below).

FIG. 3 is a block diagram of consumer network device 14, in whichvarious aspects of the present invention may be used. Consumer networkdevice 14 receives channels 16 and 17 from HFC Network 25 (shown in FIG.1). Consumer network device 14 is initially responsible for selecting adownstream DOCSIS® OOB Channel 17 that contains DSG Tunnel 18—forexample, a downstream channel associated with a particular vendor, suchas Motorola, may be selected. Based on information within OOB Messages50 received by consumer network device 14 via OOB Channel 17 over DSGTunnel 18 regarding the organization of content 12 within data streams30 transmitted over in-band channels 16, consumer network device 14reconstructs content 12 into a format that may be displayed to a user ofconsumer network device 14.

Internally, consumer network device 14 includes an in-band tuner 302,which tunes to a channel signal selected by a consumer (not shown) viauser interface 304. User interface 304 may be any type of known orfuture device or technology, such as a remote control, mouse,microphone, keyboard, or display.

NTSC Demodulator 340 and QAM Demodulator 342 are responsive to in-bandtuner 302. NTSC Demodulator 340 includes components responsive toreceive analog versions of a channel signal.

A digital demodulator 342, which as shown is a QAM Demodulator, but,which may be any type of digital demodulator device, such as aDigiCipherII demodulation device, includes components responsive toreceive digital versions of a channel signal, and to output videoinformation. QAM Demodulator 342 receives and processes digital datapackets from one or more digital sources, such as a digital televisionsignal, an MPEG transport stream, or a media stream from an externalnetwork connection, such as cable modem 15, using well-known methods andtechniques.

Video decoder 344 is responsive to receive and decode video information.Video information that may require format translation or modificationfor compatibility with capabilities of consumer network device 14 may bepassed to encoder 341 for formatting. Video information that is in aformat preferred for use by MPEG Decoder/Multi Media Processor 349 maybe passed directly to MPEG Decoder/Multi Media Processor 349.

Encoder 341 is operative to perform predetermined coding techniques (forexample, MPEG-2, MPEG-4, and others) to produce an encoded video signalfor transmission to MPEG Decoder/Multi Media Processor 349, or forstorage.

MPEG Decoder/Multi-Media Processor 349 is operative to performpredetermined coding techniques to arrange video information intodisplayable formats, in accordance with well-known methods andtechniques. Internal arrangements of MPEG Decoder/Multi-Media Processor349 are well known, and may include analog-to-digital converters, one ormore storage media and/or buffers, and general or special-purposeprocessors or application-specific integrated circuits, along withdemultiplexors for demultiplexing and/or synchronizing at least twotransport streams (for example, video and audio).

Cable modem 15 is a DOCSIS®-compliant cable modem that includes DSGProtocol functionality for converting signals received over OOB Channel17 into data packets for receipt by consumer network device 14 (or otherattached user devices, such as personal computers, data terminalequipment, telephones, media players, networked consumer appliances, orany other IP-enabled device or component thereof.) Cable modem 15includes hardware filters 350 (discussed further below), which arepacket filters used to qualify/add access control to the packetsreceived in DSG Tunnel 18.

Consumer network device 14 also includes and/or accesses the componentsof generic network device 200 (shown in FIG. 2), including NetworkInterface function 208.

DSG Client function 80 represents aspects of the functional arrangementof various computer programs 206 (shown in FIG. 2; DSG Client function80 is preferably implemented by one or more Application Layer computerprograms 206) that pertain to the receipt and processing of OOB Messages50 by consumer network device 14 and/or cable modem 15. DSG Clientfunction 80 includes an implementation of the DSG Protocol/functionalityreferred to in the DSG Specification as the DSG Client, which terminatesDSG Tunnel 18 and receives content from server 13. Multiple DSG Clientsmay exist within consumer network device 14, and a DSG Client ID 382uniquely identifies each DSG Client, as further set forth in the DSGSpecification.

DSG Client Controller function 380 represents aspects of the functionalarrangement of various computer programs 206 (shown in FIG. 2; DSGClient Controller function may be implemented at least in part by one ormore Application Layer computer programs 206), hardware, and/or firmwarethat handles the processing of DCD Messages (as defined in the DSGSpecification) and makes decisions regarding the forwarding of DSGTunnel 18 within consumer network device 14.

Consumer network device 14 may also include additional interfaces forcommunication with external devices, such as interfaces supportingmodems using communication protocols and techniques other than DOCSIS®,streaming media players, and other network support devices and/orsoftware.

With continued reference to FIGS. 1-3, FIG. 4 is a flowchart of a methodfor managing a data stream encoded according to a digital transmissionprotocol, in accordance with certain aspects of the present invention.The method may be implemented when one or more computer programs, suchas computer programs 206 associated with headend 22 (for example,computer programs associated with server 13), are loaded into aprocessor and executed.

The data stream is configured for broadcasting to a consumer networkdevice, such as consumer network device 14, within a broadbandcommunications network, such as system 10. The data stream may be, forexample, data stream 30 containing content 12, which is encoded inaccordance with an MPEG digital transmission protocol, such as MPEG-2,and/or other digital transmission protocols, such as proprietaryprotocols based on MPEG (for example, DigiCipherII).

The method begins at block 400, and continues at block 402, where amessage (such as OOB Message 50) relating to the data stream isencapsulated within a transport layer data packet, such as a UDPdatagram (discussed further below). The transport layer data packet hasa destination port number field associated therewith. A destination portnumber value, which is associated with a predetermined parameter of thedigital transmission protocol, is created within the destination portnumber field, at block 404.

The message contains information usable by the consumer network deviceto access certain content within the data stream, and/or for generaloperational control of the consumer network device. Such information mayinclude, for example (i) MPEG-defined information such as: a ProgramAssociation Table (“PAT”); a Program Map Table (“PMT”); and otherMPEG-defined information and/or (ii) operator/vendor-defined informationsuch as: a Conditional Access Table (“CAT”); an entitlement managementmessage; and instructions/values generally sent using vendor-definedaddressing techniques, such as DigiCipherII's unicast addressingtechnique and DigiCipherII's multicast addressing technique.

FIG. 5 is a block diagram of one possible encapsulation scheme for themessage, which may be created by DSG Server function 80 in accordancewith certain aspects of the present invention. As shown at the TransportLayer of FIG. 5, UDP datagram 502 includes the following fields: asixteen-bit source port number 504; a sixteen-bit destination portnumber 506; a message length indicator 508; a checksum value 510; and aUDP payload field 512, which contains the content of the message.

Destination port number 506 is used identify the content of the message(as permitted by DSG Advanced Mode, set forth in the DSG Specification),by creating a destination port number value that is a logical referenceto a predetermined parameter associated with the digital transmissionprotocol. The destination port number values discussed herein arepreferably within the range(s) of destination port number valuesindicated for private use (the “Private Port Range”) by IANA (InternetAssigned Numbers Authority).

In one example, a particular area of the Private Port Range is used toprovide logical references to MPEG-defined and operator/vendor-definedparameters, such as Program Identifiers (“PIDs”), which are used toconvey MPEG-defined information and operator/vendor-defined informationusable by consumer device 14 to access certain content 12 within datastream 30.

An area of the Private Port Range (the “PID Mapping Range”) beginning atdestination port number value 49,152 may be established by setting thefirst three bits of sixteen-bit destination port number 506 to “110”.When “110” appears in the first three bits of destination port number506, it indicates that a logical reference to a PID is contained in thesubsequent 13 bits of the destination port number. The subsequent 13bits of sixteen-bit destination port number 506 may then be used torepresent PIDs in the range of 0-8191. Thus, the possible values ofdestination port number 506 in the PID Mapping Range would be from49,152-57,343. PID 0, for example, would be represented by1100000000000000, and PID 8096 would be represented by 1101111110100000.

In another example, a particular area of the Private Port Range is usedto provide logical references to operator/vendor-defined parameters,such as certain unicast and multicast addressing protocols, that areused to convey operator/vendor-defined information usable by consumerdevice 14 for general operational control.

An area of the Private Port Range (the “Unicast Addressing Range”)beginning at destination port number value 57,344 may be established bysetting the first four bits of destination port number 506 to “1110”.When “1110” appears in the first four bits of destination port number506, it indicates that a logical reference to a unicast addressingprotocol is contained in the subsequent 12 bits of the destination portnumber. The subsequent 12 bits of sixteen-bit destination port number506 may then be used to represent unicast addresses (for example, thelast 12 bits of the unit address or MAC address (not including the checksum) of the consumer network device). Possible values of destinationport number 506 in the Unicast Addressing Range would be from57,344-61,439. The Unicast Addressing Range will potentially apply to arelatively small number of consumer network devices, and furtherfiltering may need to be performed to derive the applicability of themessage. For example, the message may include the specific 40-bitaddress of the intended consumer network device, and be examined todetermine the applicability of the message. The full population ofunit-addressed messages is divided by 4,096, however, so that apopulation of 200,000 consumer network devices would be divided intogroups of roughly fifty devices each (assuming a perfect distribution ofthe least significant 12 bits of the unit address). In operations thatrequire many unicast messages, such as set-top population refreshoperations, with a random distribution of the least significant 12 bitsof unit addresses, this represents a 99.9% reduction in unicast messagesversus methods set forth in the DSG Specification.

An area of the Private Port Range (the “Multicast Addressing Range”)beginning at destination port number value 61,440 may be established bysetting the first four bits of destination port number 506 to “1111”.When “1111” appears in the first four bits of destination port number506, it indicates that a logical reference to a multicast addressingprotocol is contained in the subsequent 12 bits of the destination portnumber. The subsequent 12 bits of sixteen-bit destination port number506 may then be used to represent multicast addresses (for example, thelegacy CableCard design includes a well-known M16 address value forproviding the Source Name Table. This table is required by CableCardsbut not by set-tops, and set-tops may ignore such references). Possiblevalues of destination port number 506 in the Multicast Addressing Rangewould be from 61,440-65,535.

At block 406, based on the destination port number value, the transportlayer data packet is forwarded to the network device according to anetwork layer protocol. When the forwarded message is received by theconsumer network device, the consumer network device is caused toprocess the data stream based on the message, and to establish anapplication layer communication socket based on the destination portnumber value. The application layer communication socket is usable toreceive further messages associated with the predetermined parameter ofthe digital transmission protocol.

Referring again to FIG. 5, DSG Server 80 multiplexes UDP datagrams 502into a Network Layer stream of IP packets 520 that encapsulate UDPdatagrams 502. An IP packet 520 includes an IP header 522, which furtherincludes elements (not shown) such as a 32-bit source IP address (the IPaddress of the sender of the IP packet), a 32-bit destination IP address(the IP address of the intended receiver(s) of the IP packet), andindications of the transport protocol (e.g., UDP) of the encapsulateddatagram.

IP packets 520 are further encapsulated for transmission to DSG Agent 70within CMTS 26 via Regional IP Network/IP Backbone 24 using a Data LinkLayer interface such as the Ethernet. An Ethernet frame 540 includes: aheader 542, which typically further includes an eight-octet preamble544, a six-octet destination Media Access Control (“MAC”) address 546, asix-octet source MAC address 548, and a two-octet Ethertype 549(indicating what sort of data is held in the frame—IP packets arerepresented by hexadecimal value 0800H); a variable-length IP packet520; and a four-octet Ethernet cyclic redundancy check (CRC) 550.Packets from a particular IP stream may be addressed from one source MACaddress, such as the MAC address of server 13, and delivered to onedestination MAC address, such as the MAC address of CMTS 26.

The Ethernet frames are modulated onto a carrier (not shown) fortransmission across a physical medium to CMTS 26.

When IP packets 520 are received by CMTS 26, DSG Agent function 70operates to examine and re-encapsulate IP packets 520 into DOCSIS® PDUs,using a destination MAC address that is uniquely associated with DSGTunnel 18 (replacing the original destination MAC address with the DSGTunnel address, and the original source MAC address with the CMTS MACaddress), and forwards them to cable modem 15 via OOB Channel 17, all inaccordance with methods and techniques set forth in portions of the DSGSpecification applicable to the DSG Advanced Mode, which is definedtherein.

In general, DSG Agent function 70 implements Network Layer and TransportLayer filtering to determine what traffic to place on DSG Tunnel 18. Forexample, DSG Agent function 70 may examine UDP destination port numbers506 of incoming IP packets, consult a set of classification criteriaassociated with DSG Tunnel 18, and only place those packets having UDPdestination port numbers 506 with prefixes of “10,” “1110,” or “1111”onto DSG Tunnel 18. In this manner, IP packets associated with DSGTunnel 18 may be delivered to ports within the PID Mapping Range, theUnicast Port Range, and/or the Multicast Port Range. DSG Agent function70 may also transmit the set of classification criteria to consumernetwork device 14, for use in demultiplexing the IP stream on DSG Tunnel18, and may further associate a particular DSG Client ID 382 with aparticular destination port number value (or range of values).

At consumer network device 14, DSG Client Controller 380 hunts for aDOCSIS® downstream channel with a valid DSG Tunnel identifier. When DSGTunnel 18 is identified (based on the use of a well-known MAC address,as defined in the DSG Specification) and received by consumer networkdevice 14, DSG Client Controller 380 may use DSG Client ID 382 todemultiplex the IP stream on DSG Tunnel 18 based on the set ofclassification criteria it received from DSG Agent function 70/CMTS 26,and to forward contents of DSG Tunnel 18 to DSG Client function 80, asappropriate. It will be appreciated that prefixes of UDP datagrams 502that are configured in accordance with aspects of the present inventionmay be filtered using software and/or using hardware in cable modem 15(such as hardware filter 350), which would pass filtered packets toApplication Layer programs of DSG Client function 80. Such ApplicationLayer programs would in turn use the IP address associated with DSGTunnel 18, together with ports identified by destination port numbervalues within destination port numbers 506, to establish sockets forcommunication of messages having content that is associated withparameters represented by the destination port number values. Themessages would be used by the consumer network device to process thedata stream, among other things.

For example, the MPEG-defined PID 0 parameter identifies the PAT, whichis broadcast on PID 0 in the transport stream. The message portion ofthe UDP datagram that contains the destination port number valuelogically referring to PID 0 in accordance with aspects of the presentinvention (i.e., destination port number value 49,152) would thereforecontain the PAT, and a socket connection could be created and bound todestination port number value 49,152.

Likewise, in accordance with the DigiCipher II protocol, the PID 1parameter identifies the CAT, which is broadcast on PID 1 in thetransport stream. The message portion of the UDP datagram that containsthe destination port number value logically referring to PID 1 inaccordance with aspects of the present invention (i.e., destination portnumber value 49,153) would therefore contain the CAT, and a socketconnection could be created and bound to destination port number value49,143.

Further sockets to destination port number values within the PID MappingRange could be created in a similar manner—for example, various PIDvalues referred to by the PAT and/or the CAT (for example, thoseidentifying PMTs, network messages, or Entitlement Management Messages)could be used to determine destination port number values and sockets tobe established.

Still further sockets may be created to destination port number valueswithin the Unicast and Multicast Address Ranges, using well-known unitaddress values, or values as required by other messaging.

FIG. 6 is a flowchart of a method for managing a data stream encodedaccording to a digital transmission protocol, in accordance with furtheraspects of the present invention. The method may be implemented when oneor more computer programs, such as computer programs 206 associated withcomputer network device 14, are loaded into a processor and executed.

The data stream is configured for broadcasting to a consumer networkdevice, such as consumer network device 14, within a broadbandcommunications network, such as system 10. The method begins 600, andcontinues at block 602, where a message encapsulated within a transportlayer data packet is received. The transport layer data packet has adestination port number field associated therewith, which has a valuetherein associated with a predetermined parameter of the digitaltransmission protocol.

At block 604, based on the destination port number value, an applicationlayer communication socket is established. The application layercommunication socket is usable to receive further messages associatedwith the predetermined parameter of the digital transmission protocol.The data stream is processed based on the message, at block 606.

Aspects of the present invention described herein address the need formethods and apparatuses for managing encoded data streams configured forbroadcasting to consumer network devices within broadband communicationsystems using packet-based network protocol messaging for out-of-bandcommunication with the consumer network devices, while also allowing theconsumer network devices to efficiently receive and process relevantmessages based on predetermined parameters of the encoding protocol.Aspects of the present invention are applicable to the mapping ofconstructs of proprietary/MPEG-based encoding schemes such asDigiCipherII to constructs of IP networks, but it will be appreciatedthat destination port mapping of encoding constructs may be used in anyIP environment/addressing construct, including direct IP addressabilityof network devices such as set-tops, and mapping of the constructs ofencoding schemes such as ATM Virtual Path and Virtual ChannelIdentifiers to constructs of IP networks. It will also be appreciatedthat aspects of the present invention are not limited to messaging forout-of-band communications, and may be applicable to control, video,audio and voice data streams in general.

It will also be appreciated that aspects of the present invention arenot limited to any specific embodiments of computer software or signalprocessing methods. For example, one or more processors packagedtogether or with other elements of headend 22 or consumer network device14 may implement functions described herein in a variety of ways.Computer programs implementing functions described herein or partsthereof may be stored in computer-readable memories, and implementedaccording to well-known software engineering practices forcomponent-based software development. It will be understood, however,that the functions described herein are processes that convey ortransform data in a predictable way, and may generally be implemented inhardware, software, firmware, or any combination thereof.

When one element is indicated as being responsive to another element,the elements may be directly or indirectly coupled. Connections depictedherein may be logical or physical in practice to achieve a coupling orcommunicative interface between elements. Connections may be implementedas inter-process communications among software processes.

It will furthermore be apparent that other and further forms of theinvention, and embodiments other than the specific embodiments describedabove, may be devised without departing from the spirit and scope of theappended claims and their equivalents, and it is therefore intended thatthe scope of this invention will only be governed by the followingclaims and their equivalents.

1. A method for managing a data stream encoded according to a digitaltransmission protocol and configured for broadcasting to a consumernetwork device within a broadband communications network, the methodcomprising: encapsulating a message relating to the data stream within atransport layer data packet, the transport layer data packet having adestination port number field associated therewith; creating adestination port number value within the destination port number field,the destination port number value associated with a predeterminedparameter of the digital transmission protocol; and based on thedestination port number value, forwarding the transport layer datapacket to the consumer network device according to a network layerprotocol, wherein when the forwarded message is received by the consumernetwork device, the consumer network device is caused to process thedata stream based on the message, and caused to establish an applicationlayer communication socket based on the destination port number value,the application layer communication socket usable to receive furthermessages associated with the predetermined parameter of the digitaltransmission protocol, wherein the destination port number value iswithin a predetermined private port range, wherein the predeterminedprivate port range is determined by a prefix of the destination portnumber value, wherein the prefix comprises a first three bits of thedestination port value when the predetermined parameter comprises a MPEGprogram identifier (“PID”) value.
 2. The method according to claim 1,wherein the network layer protocol comprises an Internet Protocol “IP”protocol.
 3. The method according to claim 2, wherein the transportlayer data packet comprises a user data protocol (“UDP”) packet.
 4. Themethod according to claim 1, wherein the digital transmission protocolcomprises a Moving Pictures Experts Group (“MPEG”) protocol.
 5. Themethod according to claim 4, wherein the message includes informationused for accessing information within the data stream.
 6. The methodaccording to claim 5, wherein the destination port number valueidentifies content of the message.
 7. The method according to claim 6,wherein the destination port number value comprises a logical referenceto the predetermined parameter associated with the digital transmissionprotocol.
 8. The method according to claim 7, wherein the predeterminedparameter comprises one of an MPEG program identifier (“PID”) value; aprivate unicast addressing protocol; and a private multicast addressingprotocol.
 9. The method according to claim 8, wherein the messagecomprises one of a Program Association Table, a Program Map Table, aconditional access table, and an entitlement management message.
 10. Themethod according to claim 9, wherein the message comprises anout-of-band message.
 11. A non-transitory computer-readable mediumencoded with a computer program which, when loaded into a processor,implements the method of claim
 1. 12. A method for managing a datastream encoded according to a digital transmission protocol andconfigured for broadcasting to a consumer network device within abroadband communications network, the method comprising: encapsulating amessage relating to the data stream within a transport layer data packetthe transport layer data packet having a destination port number fieldassociated therewith; creating a destination port number value withinthe destination port number field, the destination port number valueassociated with a predetermined parameter of the digital transmissionprotocol; and based on the destination port number value, forwarding thetransport layer data packet to the consumer network device according toa network layer protocol, wherein when the forwarded message is receivedby the consumer network device, the consumer network device is caused toprocess the data stream based on the message, and caused to establish anapplication layer communication socket based on the destination portnumber value, the application layer communication socket usable toreceive further messages associated with the predetermined parameter ofthe digital transmission protocol, wherein the destination port numbervalue is within a predetermined private port range, wherein thepredetermined private port range is determined by a prefix of thedestination port number value, wherein the prefix comprises a first fourbits of the destination port value, when the predetermined parametercomprises one of a private unicast addressing technique and a privatemulticast addressing technique.
 13. The method according to claim 12,wherein the network layer protocol comprises an Internet Protocol “IP”protocol.
 14. The method according to claim 13, wherein the transportlayer data packet comprises a user data protocol (“UDP”) packet.
 15. Themethod according to claim 12, wherein the digital transmission protocolcomprises a Moving Pictures Experts Group (“MPEG”) protocol.
 16. Themethod according to claim 15, wherein the message includes informationused for accessing information within the data stream.
 17. The methodaccording to claim 16, wherein the destination port number valueidentifies content of the message.
 18. The method according to claim 17,wherein the destination port number value comprises a logical referenceto the predetermined parameter associated with the digital transmissionprotocol.
 19. The method according to claim 18, wherein thepredetermined parameter comprises one of an MPEG program identifier(“PID”) value; a private unicast addressing protocol; and a privatemulticast addressing protocol.
 20. The method according to claim 19,wherein the message comprises one of a Program Association Table, aProgram Map Table, a conditional access table, and an entitlementmanagement message.
 21. The method according to claim 20, wherein themessage comprises an out-of-band message.
 22. A non-transitorycomputer-readable medium encoded with a computer program which, whenloaded into a processor, implements the method of claim 12.